來到十三章,打造Line聊天機器人
我也把他分為前中後😓
前為建立初始的Line Echo Bot架構
Echo Bot為聊天機器人的第一個入門程式,它的作用是把收到的文字訊息轉發回去給發送者
先建立一個虛擬環境
C:\Users\cubie>cd /d D:\line
D:\line> python -m venv env
再安裝需要的程式庫列表
requirement.txt程式庫列表:
line-bot-sdk==1.8.0
Flask==1.0.2
gspread==3.1. 0
oauth2client==4.1.3
D:\line>env\scripts\activate
(env) D:\line>cd src
(env) D:\line\src>pip install -r requirements.txt
一個基本的 LNE bot 程式,包含下列四個元素:
1.回應與發送訊息的 LinebotAPI物件(line_bot_api)
2.解讀與包裝訊息的WebhookHandler物件(handler)
3.接收 LINE 伺服器傳入訊息的”/callback”路由
4.捕捉 LINE 訊息事件的裝飾器(decorator)
開始撰寫程式
from flask import Flask, request, abort
from linebot import LineBotApi, WebhookHandler
from linebot.exceptions import InvalidSignatureError <-處理密鑰錯誤
app = Flask (__name__)
line_bot_api = LineBotApi(' 輸入你的頻道存取代碼 ')
handler = WebhookHandler (' 輸入你的頻道密鑰')
@app.route('/')
def index():
return 'Welcome to Line Bot!'
LineBotApi
用於「操作」訊息相關資料,例如回應訊息、發送訊息、取得用戶資料...等。
WebhookHandler
用於「處理」訊息,例如解讀或包裝訊息內容。
而存取代碼與密鑰必須註冊成為Line開發者,由官方提供
@handler.default() <-接收任意Line訊息的「預設」裝飾器
def default(event): <—接收「訊息事件」的參數
print('捕捉到事件:' , event)
if __name__ == "__main__":
app.run(debug=True, host='0.0.0.0', port=80)
debug為除錯模式,在本機測驗時建議開啟
此程式將把收到的訊息輸出到網站伺服器的終端機